Devices like mobile phones and tablets may contain multiple applications. Users may utilize the applications on these devices to send media to other users over a network connection. These applications may function together with a high-level operating system, such as Android® or iOS®, but each application may have its own library of functions and capabilities. For example, on a mobile device, a user may have a picture-taking application and a music-playing application. While the applications may operate on the same device, each application may only be capable of using or handling certain types of data.
This difference of functionality among applications can be an obstacle when one user desires to send media from his device (i.e., the “originator device”) to another user's device (i.e., the “target device”) without knowing which applications are on the target device. For example, if a user wishes to send a song to a target device with his music-playing application, the application (and the user) may not know whether the target device has an application that is configured to receive and play the song because of the song file's unusual file format (e.g., file having file extension .ogg).
Currently, a user may rely on existing mechanisms to facilitate a media transfer to another user, including presence functionality and capability discovery. These mechanisms typically involve instigating a handshake between the users' devices over the air to discover the target device's applications' functionalities (e.g., file-format compatibilities). However, these current mechanisms result in suboptimal performance for various reasons. For instance, today's existing methods for transferring media are network and infrastructure heavy in terms of efficiency, deployment, and scalability; require the originator device to fetch the target device's application capability over the air; and require the originator device to maintain a presence or capability state with respect to each target device in the originator device's contact book. The existing methods may also add to latency in the media session setup phase unless retrieval of recipient application capability is done offline and maintained locally in the cache.